<?php
/**
 * 上传文件处理，保存到硬盘上
 * 
 * ============================================================================
 * 版权所有: (c) 2009-2011，<UEShop Inc>，并保留所有权利。
 * 网站地址: http://www.ueshop.cn
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用；
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 *
 * @author      cmpan
 * @copyright   Copyright (c) 2009-2010 UEShop Inc. (http://www.ueshop.cn)
 * @license     http://www.ueshop.cn/1_0.txt
 */
class UE_Upload_Standard implements UE_Upload_Interface {
	protected $_dir = 'uploads';
	public static $uploadSite = '';
	
	function __construct() {
		$this->_dir = trim(str_replace(SITE_DIR, '', UPLOAD_DIR), '/');
	}
	
	protected function _fileFullPath($file) {
		$file = trim($file, '/');
		return UPLOAD_DIR.'/'.$file;
	}

	/**
	 * 文件是否存在
	 *
	 * @param string $file
	 * @return bool
	 */
    public function isExists ($file) {    	
    	return $this->_fileFullPath($file);
    }
    
    /**
     * 读取文件
     *
     * @param string $file
     * @return string
     */
    public function read ($file) {
    	return @file_get_contents($this->_fileFullPath($file));
    }
    
    /**
     * 写入附件
     *
     * @param string $file
     * @param string $content 附件内容
     * @return bool
     */
    public function write ($file, $content) {
    	return @file_put_contents($this->_fileFullPath($file), $content);
    }
    
    /**
     * 移动服务器上的文件作为上传文件
     *
     * @param string $srcFile  原文件
     * @param string $distFile 目标文件
     * @return bool
     */
    public function upload ($srcFile, $distFile) {
    	$distFile = $this->_fileFullPath($distFile);    	
		return move_uploaded_file($srcFile, $distFile);
    }
    
    /**
     * 删除附件
     *
     * @param string $file
	 * @return bool
     */
	public function delete ($file) {
		return @unlink($this->_fileFullPath($file));
	}
	
	/**
	 * 获取附件的url
	 *
	 * @param string $file
	 * @return string
	 */
	public function getUrl ($file) {		
		return trim($this->getBaseUrl($isfullUrl) . trim($file, '/'));
	}
	
	public function getBaseUrl() {
		static $uploadBaseUrl;
		
		if (!$uploadBaseUrl) {
			$uploadBaseUrl = trim(cfg('upload_site'), '/') . "/{$this->_dir}";
			$uploadBaseUrl = trim($uploadBaseUrl, '/') . '/';
		}
				
		return $uploadBaseUrl;
	}
}